﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HermesProxy.World.Enums
{
    public enum ChatMessageTypeVanilla : uint
    {
        System = 10,
        Say = 0,
        Party = 1,
        Raid = 2,
        Guild = 3,
        Officer = 4,
        Yell = 5,
        Whisper = 6,
        WhisperInform = 7,
        Emote = 8,
        TextEmote = 9,
        MonsterSay = 11,
        MonsterYell = 12,
        MonsterEmote = 13,
        Channel = 14,
        ChannelJoin = 15,
        ChannelLeave = 16,
        ChannelList = 17,
        ChannelNotice = 18,
        ChannelNoticeUser = 19,
        Afk = 20,
        Dnd = 21,
        Ignored = 22,
        Skill = 23,
        Loot = 24,
        CombatMiscInfo = 25,
        MonsterWhisper = 26,
        MonsterParty = 48,
        BattlegroundNeutral = 82,
        BattlegroundAlliance = 83,
        BattlegroundHorde = 84,
        RaidLeader = 87,
        RaidWarning = 88,
        RaidBossEmote = 90,
        RaidBossWhisper = 91,
        Battleground = 92,
        BattlegroundLeader = 93,

        Addon = uint.MaxValue
    }

    // Also okay for TBC
    public enum ChatMessageTypeWotLK : uint
    {
        System = 0,
        Say = 1,
        Party = 2,
        Raid = 3,
        Guild = 4,
        Officer = 5,
        Yell = 6,
        Whisper = 7,
        WhisperForeign = 8,
        WhisperInform = 9,
        Emote = 10,
        TextEmote = 11,
        MonsterSay = 12,
        MonsterParty = 13,
        MonsterYell = 14,
        MonsterWhisper = 15,
        MonsterEmote = 16,
        Channel = 17,
        ChannelJoin = 18,
        ChannelLeave = 19,
        ChannelList = 20,
        ChannelNotice = 21,
        ChannelNoticeUser = 22,
        Afk = 23,
        Dnd = 24,
        Ignored = 25,
        Skill = 26,
        Loot = 27,
        Money = 28,
        Opening = 29,
        Tradeskills = 30,
        PetInfo = 31,
        CombatMiscInfo = 32,
        CombatXPGain = 33,
        CombatHonorGain = 34,
        CombatFactionChange = 35,
        BattlegroundNeutral = 36,
        BattlegroundAlliance = 37,
        BattlegroundHorde = 38,
        RaidLeader = 39,
        RaidWarning = 40,
        RaidBossEmote = 41,
        RaidBossWhisper = 42,
        Filtered = 43,
        Battleground = 44,
        BattlegroundLeader = 45,
        Restricted = 46,
        BattleNet = 47,
        Achievement = 48,
        GuildAchievement = 49,
        ArenaPoints = 50,
        PartyLeader = 51,
        Addon = uint.MaxValue
    }

    public enum ChatMessageTypeModern : byte
    {
        System = 0,
        Say = 1,
        Party = 2,
        Raid = 3,
        Guild = 4,
        Officer = 5,
        Yell = 6,
        Whisper = 7,
        Whisper2 = 8,
        WhisperInform = 9,
        Emote = 10,
        TextEmote = 11,
        MonsterSay = 12,
        MonsterParty = 13,
        MonsterYell = 14,
        MonsterWhisper = 15,
        MonsterEmote = 16,
        Channel = 17,
        ChannelJoin = 18,
        ChannelLeave = 19,
        ChannelList = 20,
        ChannelNotice = 21,
        ChannelNoticeUser = 22,
        Afk = 23,
        Dnd = 24,
        Ignored = 25,
        Skill = 26,
        Loot = 27,
        Money = 28,
        Opening = 29,
        Tradeskills = 30,
        PetInfo = 31,
        CombatMiscInfo = 32,
        CombatXPGain = 33,
        CombatHonorGain = 34,
        CombatFactionChange = 35,
        BattlegroundNeutral = 36,
        BattlegroundAlliance = 37,
        BattlegroundHorde = 38,
        RaidLeader = 39,
        RaidWarning = 40,
        RaidBossEmote = 41,
        RaidBossWhisper = 42,
        Filtered = 43,
        Restricted = 44,
        //unused1 = 45,
        Achievement = 46,
        GuildAchievement = 47,
        //unused2 = 48,
        PartyLeader = 49,
        Targeticons = 50,
        BnWhisper = 51,
        BnWhisperInform = 52,
        BnConversation = 53,
        BnConversationNotice = 54,
        BnConversationList = 55,
        BnInlineToastAlert = 56,
        BnInlineToastBroadcast = 57,
        BnInlineToastBroadcastInform = 58,
        BnInlineToastConversation = 59,
        BnWhisperPlayerOffline = 60,
        CombatGuildXpGain = 61,
        Battleground = 62,
        BattlegroundLeader = 63,
        PetBattleCombatLog = 64,
        PetBattleInfo = 65,
        InstanceChat = 66,
        InstanceChatLeader = 67,
        Addon = byte.MaxValue
    }
}
